<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JSON</title>
    <!-- 
        如果需要兼容 IE7 及以下的JSON操作，则可以通过引入一个外部的 js 文件来处理 
     -->
</head>
<body>
    
</body>
</html>
<script>
    /*
        JSON
            - js 中的对象只有js 认识，其他的语言都不认识
            - JSON 就是一个特殊格式的字符串，这个字符串可以被任意的语言所识别，
                并且可以转换为任意语言中的对象，JSON 在开发中主要用来数据的交互
            - JSON
                - JavaScript Object Notation JS对象表示法
                - JSON 和 js 对象的格式一样，只不过JSON字符串中的 属性名 必须加双引号 ""
                    其他的和 js 语法一致
                JSON分类:
                    1.对象{} ⭐
                    2.数组[] ⭐
                
                JSON 中允许的值：⭐
                    1.字符串
                    2.数值
                    3.布尔值
                    4.null
                    5.对象
                    6.数组
    */

    // 创建一个对象


    var arr = '[1,2,3,"hello",true]';

    var obj2 = '{"arr":[1,2,3]}'

    var arr2 = '[{"name":"孙悟空","age":18,"gender":"男"},{"name":"孙悟空","age":18,"gender":"男"}]'

    // console.log(arr);

    /*
        将JSON 字符串转换为JS 中的对象
            在JS 中，为我们提供了一个工具类，就叫JSON
            这个对象可以帮助我们将一个　JSON转换为 js 对象，也可以将一个js 对象转换为JSON
    */

    var json = '{"name":"孙悟空","age":18,"gender":"男"}';

    /*
        json --> js对象   json 转 js
            JSON.parse() ⭐⭐📌
                - 可以将一个 JSON 字符串转换为js对象
                - 他需要一个 JSON 字符串作为参数，会将该字符串转换为 js 对象返回

    */
    var o = JSON.parse(json);
    var o2 = JSON.parse(arr);
    // console.log(o.name);
    // console.log(o2[1]);

    var obj3 = {name:"猪八戒",age:18,gender:"男"};
    
    /*
        js对象 --> JSON   js 转 json
            JSON.stringify() ⭐⭐📌
                - 可以将一个 js 对象转换为 JSON 字符串
                - 需要一个 js 对象作为参数，会返回一个 JSON字符串
            
    */

    var json2 = JSON.stringify(obj3);
    console.log(json2);
    
    /*
        JSON 在 IE7 不兼容
    */
</script>